Graphics processing involves a wide range of types of processing, Some graphic operations are highly repetitive, with little or no change from one performance to another. Other operations, however, are extremely dynamic, having many changes from one performance to the next. For example, many rendering operations require repeated drawing of the same graphic. Operations which include such repeated renderings of an identical object include dragging, frequently refreshed or recomposited graphics, an icon being duplicated numerous times, or sprites.
Caching systems are well-known in data processing. Typically, a cache system is composed of a small fast storage device which contains a "snapshot" of information from a larger, slower memory. The snapshot is considered by the particular implementation to be the most relevant information to the processing occurring during the current time period. There are numerous algorithms for caching which attempt to maximize the use of the fast cache memory to avoid going to the slow backing store for information.
A cache manager is used to handle the flow of information between the cache, the device requesting information, and the large backing store. The manager is transparent to the user, and runs algorithms which generally review the flow of information, and from the review attempts to maximize the speed of the cache. For example, if a particular piece of data is found to be used frequently, that piece of data will be kept in the cache. The manager must also manage the updating of information which occurs.
While caching systems work toward optimizing speed of overall system operation, they typically lack flexibility relative to the designer of the particular applications which are run on the computer. The prior art cache system typically merely monitors data usage, and responds to the usage in a mechanistic manner by applying the caching algorithm based on the monitored usage. Such a system often does not take into account any particular nuances of the data beyond usage.
Moreover, prior art caching systems are relatively static with respect to particular types of information, and are not capable of flexibly handling different types of information to uniquely provide particular caching techniques according to the information type.
Graphics systems take descriptions of information to be displayed and "render" the information as an entity on a display device. If the displayed information does not change the process of rendering need only occur once to a display buffer. When information is changed, the information must be re-rendered to reflect the change desired, For complex graphics scenes re-rendering can require massive processing for only incremental changes in the scene or particular graphic, Put another way, the processing required for re-rendering is disproportional to the level of resulting change in the scene or graphic.